#!/bin/bash

# WiFi Manager 打包脚本
# 用于自动化构建deb包

set -e

# 项目根目录
PROJECT_ROOT=$(cd "$(dirname "$0")" && pwd)
# 修改: 直接指向项目根目录下的debian目录
DEBIAN_DIR="$PROJECT_ROOT/debian"
# 修改: 将构建目录设置为脚本所在目录
BUILD_DIR="$PROJECT_ROOT"
PACKAGE_NAME="wifimanager"

echo "开始构建 $PACKAGE_NAME 包..."

# 检查必要文件
if [ ! -d "$DEBIAN_DIR" ]; then
    echo "错误: 未找到debian目录"
    exit 1
fi

# 自动增加版本号
# 修改: 直接使用DEBIAN目录中的changelog文件
CHANGELOG_FILE="$DEBIAN_DIR/DEBIAN/changelog"

if [ -f "$CHANGELOG_FILE" ]; then
    # 从changelog中提取当前完整版本号 (例如: 1.0.48-1)
    CURRENT_FULL_VERSION=$(head -n 1 "$CHANGELOG_FILE" | sed -E 's/.*\(([^)]+)\).*/\1/')
    
    # 分离版本号和修订号
    CURRENT_VERSION=$(echo "$CURRENT_FULL_VERSION" | cut -d'-' -f1)
    CURRENT_REVISION=$(echo "$CURRENT_FULL_VERSION" | cut -d'-' -f2)
    
    # 使用更可靠的版本号递增方法
    # 提取主版本号、次版本号和修订号
    IFS='.' read -ra VERSION_PARTS <<< "$CURRENT_VERSION"
    MAJOR=${VERSION_PARTS[0]}
    MINOR=${VERSION_PARTS[1]}
    PATCH=${VERSION_PARTS[2]}
    
    # 增加修订版本号
    NEW_PATCH=$((PATCH + 1))
    NEW_VERSION="$MAJOR.$MINOR.$NEW_PATCH"
    
    # 新的修订号重置为1
    NEW_REVISION=1
    
    echo "当前版本: $CURRENT_VERSION-$CURRENT_REVISION, 新版本: $NEW_VERSION-$NEW_REVISION"
    
    # 更新changelog文件中的版本号
    sed -i "1s/($CURRENT_FULL_VERSION)/($NEW_VERSION-$NEW_REVISION)/" "$CHANGELOG_FILE"
    
    # 更新control文件中的版本号 (修复路径问题)
    sed -i "s/Version: .*/Version: $NEW_VERSION-$NEW_REVISION/" "$DEBIAN_DIR"/DEBIAN/control
    
    # 更新wifimanager.py中的版本信息
    WIFI_MANAGER_PY="$DEBIAN_DIR/usr/share/wifimanager/wifimanager.py"
    if [ -f "$WIFI_MANAGER_PY" ]; then
        sed -i "s/self\.version = \".*\"/self.version = \"v$NEW_VERSION\"/" "$WIFI_MANAGER_PY"
    fi
    
    # 更新README.md中的版本信息 - 修复正则表达式以匹配新的格式
    README_FILE="$DEBIAN_DIR/usr/share/wifimanager/README.md"
    if [ -f "$README_FILE" ]; then
        # 修改正则表达式以正确匹配README.md中的实际格式
        # README.md中版本信息格式为: - **版本**： v1.0.67-1 (注意中文冒号和空格)
        sed -i "s/v[0-9]\+\.[0-9]\+\.[0-9]\+-[0-9]\+/v$NEW_VERSION-$NEW_REVISION/" "$README_FILE"
    fi
else
    echo "错误: 未找到changelog文件"
    exit 1
fi

# 设置权限
chmod 755 "$DEBIAN_DIR"/DEBIAN/*
chmod 755 "$DEBIAN_DIR"/usr/bin/wifimanager
chmod 755 "$DEBIAN_DIR"/usr/share/wifimanager/wifimanager.py

# 构建deb包
echo "构建deb包..."
cd "$PROJECT_ROOT"
# 使用带版本号的包名
DEB_FILENAME="${PACKAGE_NAME}_${NEW_VERSION}-${NEW_REVISION}_all.deb"
# 修改: 直接打包debian目录，生成文件放在脚本所在目录
dpkg-deb --build debian "$DEB_FILENAME"

echo "打包完成！生成的deb包位于: $PROJECT_ROOT/$DEB_FILENAME"

# 显示生成的文件
ls -la "$DEB_FILENAME"

echo "构建脚本执行完毕"
